package com.woniu.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.entity.ProSpence;
import com.woniu.entity.wrapperinterface.AllProSpence;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hyl
 * @since 2022-08-28
 */
public interface IProSpenceService extends IService<ProSpence> {

    void addProSpence(ProSpence proSpence);


    /**
     * todo 在controller里面要控制 spenPrice的有效性
     * 可以通过项目流水id 或者 流水id和项目id进行更新
     * @param proSpence
     */
    void updateProSpence(ProSpence proSpence);


    /**
     * 根据流水id查流水，此方法也可以根据流水id以及项目id查流水
     * @param proSpence
     */
    ProSpence selectOneSpence(ProSpence proSpence);


    List<ProSpence> selectProSpences(ProSpence proSpence);


    void deleteProSpence(ProSpence proSpence);

    /**
     *  mybatis-plus 分页查询service
     * @param pageNum
     * @param pageSize
     * @param aps
     * @return
     */
    Page<ProSpence> getAnyProSpenceWithPage(Integer pageNum, Integer pageSize, AllProSpence aps);

    /**
     * 不带条件的查询全部，没有分页功能
     * @param aps
     * @return
     */
    List<ProSpence> getAnyProSpences(AllProSpence aps);

    /**
     * 不带条件查询全部，有分页功能
     * @param pageNum
     * @param pageSize
     * @param aps
     * @return
     */
    Page<ProSpence> getAllProSpenceWithPage(Integer pageNum, Integer pageSize);
}
